/*
 * @Copyright: 2017 www.yyfax.com Inc. All rights reserved.
 */
package com.yyfax.pay.order.data.service;

import java.util.List;

import com.yyfax.pay.order.model.po.PayinOrderPO;
import com.yyfax.pay.order.model.to.payin.PayinOrderVO;
import com.yyfax.pay.order.model.to.payin.PayinSnapshotVo;

/**
 * 代扣订单服务接口
 *
 * @author maojian
 * @date 2017-04-26 11:09:15
 * @since 1.0.0
 */
public interface PayinOrderService {



	/**
	 * 保存实体对象，并返回业务主键
	 *
	 * @author maojian
	 * @date 2017年4月26日上午1:28:22
	 * @since 1.0.0
	 * @param po 实体对象
	 * @return 返回主鍵，如果返回-1,0表示失败
	 * @throws Exception
	 */
	public String saveAndReturnBusiKeyByBatch(PayinOrderPO po) throws Exception;
	
	
	/**
	 * 保存实体对象，并返回业务主键
	 *
	 * @author maojian
	 * @date 2017年4月26日上午1:28:22
	 * @since 1.0.0
	 * @param po 实体对象
	 * @return 返回主鍵，如果返回-1,0表示失败
	 * @throws Exception
	 */
	public String saveAndReturnBusiKey(PayinOrderPO po) throws Exception;
	
	
	/**
	 * 查询订单快照
	 * @param merchantCode
	 * @param orderId
	 * @return
	 * @throws Exception
	 */
	public PayinSnapshotVo querySnapshotByMerchantCodeAndOrderId(String merchantCode, String orderId) throws Exception ;


	/**
	 * 查询订单信息
	 * @param merchantCode
	 * @param orderId
	 * @return
	 * @throws Exception
	 */
	public PayinOrderPO queryByMerchantCodeAndOrderId(String merchantCode, String orderId) throws Exception ;
	
	
	/**
	 * 根据批量代扣订单号查询代扣订单快照列表
	 * 
	 * @author maojian
	 * @date 2017-04-20 11:25:10
	 * @since v1.0.0
	 * @param merchantCode
	 * @param payoutBatchOrderId
	 * @return
	 */
	public List<PayinOrderVO> queryPayinOrderVoList(String merchantCode, String payinBatchOrderId);

}
